#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>


typedef int LTDataType;

typedef struct ListNode
{
	LTDataType data;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

ListNode* BuyListNode(LTDataType x);

void ListDestory(ListNode* pHead);

ListNode* ListCreate();

void ListPrint(ListNode* pHead);

void ListPushBack(ListNode* pHead, LTDataType x);

void ListPushFront(ListNode* pHead, LTDataType x);

void ListPopBack(ListNode* pHead);

void ListPopFront(ListNode* pHead);

ListNode* ListFind(ListNode* pHead, LTDataType x);

void ListInsert(ListNode* pos, LTDataType x);

void ListErase(ListNode* pos);